package com.md.common.exception;

import com.md.common.utils.ValueUtils;
import org.apache.commons.lang3.StringUtils;

/**
 * 功能描述：基础错误码类 <br/>
 *              错误码段分配：总长度5位，共10万个错误码，每个模块平均500个错误码，可以共200个模块使用<br/>
 *              公共模块：10000-10499<br/>
 *              基础数据模块：10500-10999<br/>
 *              用户模块：11000-11499<br/>
 *              产品模块：11500-11999<br/>
 *              订单模块：12000-12499<br/>
 *              营销模块：12500-12999<br/>
 *              支付模块：13000-13499<br/>
 *              财务模块：13500-13999<br/>
 *              消息模块：14000-14499<br/>
 *              文章模块：14500-14999<br/>
 *              课程模块：15000-15499<br/>
 *              系统模块：15500-15999<br/>
 *              前端端接口模块：16500-16999<br/>
 *              管理后台模块：17000-17499<br/>
 *
 * @author lujianping@oak168.com
 * @version 1.0
 * @date 2018-6-14 11:51
 * @since JDK 1.8
 */
public class BaseErrorCode {

    public static final int SYSTEM_BUSY = -4;// 系统繁忙，稍后重试
    public static final int DB_FAIL = -2;// 数据库操作失败
    public static final int SYSTEM_ERROR = -1;// 系统异常
    public static final int SUCCESSFUL = 0;// 成功
    public static final int TOKEN_ERROR = 101;// token无效
    public static final int PERMISSION_ERROR = 102;// 没有访问权限
    public static final int SESSION_OUT_TIME = 10000;// 会话失效
    public static final int IS_NULL = 10001;// 传入的参数值为NULL
    public static final int PARAMS_ERROR = 10002;// 传入的参数错误
    public static final int INVALID_DATA = 10003;// 无效、非法数据
    public static final int TOKEN_NOT_NULL = 10004;// token不能为空


    private int code;// 错误码
    private String message;// 错误信息

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    /**
     * 
     * 方法说明：根据错误码查找错误信息
     * 
     * @param code 错误码
     * @return
     * @author yanjianhua@kuparts.com
     * @date:2017年9月14日下午2:53:34
     */
    public final String getErrorMsg(int code) {
        final String msg = ValueUtils.value(String.valueOf(code));
        if (StringUtils.isBlank(msg)) {
            return String.format("根据传入的错误码[%s]没有找到相应的错误信息", code);
        }
        return msg;
    }

}
